/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package main;

import java.util.List;
import java.util.Scanner;

/**
 *
 * @author Danilo
 */
public class Main {
    public static void main(String[] args) {
        // total de cartas no deck é: 40 de 0..9 de qualquer cor + 4 de +2 para cada cor
        // + 4 de BLOCK para cada cor + 4 de NEUTRAL + 4 de FOUR = 56
        
        Deck deck = new Deck();
        Jogador jog = new Jogador(deck);
        Jogador boot = new Jogador(deck);
        Mesa mesa = new Mesa();
        Carta cartaBaixadaJog, cartaBaixadaBoot, cartaTopoMesa;
        cartaBaixadaJog = new Carta();
        Scanner scan = new Scanner(System.in);
        List<Carta> cartasCompativeis;
        Carta comprada;
        
        int valorCartaBaixada;
        String corCartaBaixada, tipoCartaBaixada;
        
        String textoCartasCompativeis;
                        
        while(true) {
            cartaTopoMesa = deck.montante.get(0);
            
            if(cartaTopoMesa.getValor() == 10 || cartaTopoMesa.getValor() == 11 || cartaTopoMesa.getValor() == 12) {
                while (cartaTopoMesa.getValor() == 10 || cartaTopoMesa.getValor() == 11 || cartaTopoMesa.getValor() == 12) {
                    cartaTopoMesa = deck.montante.get(0);
                }
            }
                        
            if(cartaTopoMesa == null) {
                System.out.println("Mesa: VAZIO");
            }
            else {
                System.out.println("Mesa: " + cartaTopoMesa.toString());
            }
            
            System.out.println("Sua mao: " + jog.exibeMao());

            textoCartasCompativeis = jog.exibeCartasCompativeis(cartaTopoMesa);
                        
            if(textoCartasCompativeis.equals("")) {
                System.out.println("Voce nao tem cartas compativeis... Compre uma carta!");
                jog.compraCarta(deck, 1);
                comprada = deck.compraCartaTopo();
                if(comprada.isCompatible(cartaTopoMesa)) {
                    mesa.adicionaCarta(comprada);
                }
                else {
                    System.out.println("Jogada passada!");
                }
            }
            
            else {
                boolean loop = false;
                
                do {
                    System.out.print("Cartas Compativeis: " + textoCartasCompativeis);
                    System.out.println();
                    System.out.println("Baixe uma carta.");
                    System.out.println("Valor: ");
                    valorCartaBaixada = scan.nextInt();
                    System.out.println("Cor: ");
                    corCartaBaixada = scan.next();
                    
                    cartaBaixadaJog = jog.capturaCarta(valorCartaBaixada, corCartaBaixada);
                    
                    if(cartaBaixadaJog != null) {
                        loop = false;
                    }
                    else {
                        System.out.println("Carta Invalida!");
                    }
                    
                } while(loop);
                
                mesa.montante.add(cartaBaixadaJog);
                
                // turno do CPU
            }
        }
    }
}
